C963B0:	010F4000-010FF1A0	item list
	each entry 0xA in size
well, will just have to increase the size of them and give it a table to work with

80096740	creates the codeword a few times
ADDIU	SP,SP,FFC0
SW	RA,0014 (SP)
SW	A0,0040 (SP)	;p->target
SW	A1,0044 (SP)	;item code number
ANDI	A2,A1,FFFF	;A2=item code
JAL	800BF10C	;muddles out the different item type correction values
ANDI	A0,A2,FFFF
ANDI	A0,V0,F000
SRA	A0,A0,0xC	;A0=first nibble of code
ADDIU	AT,R0,0001
ANDI	A2,V0,FFFF
BEQ	A0,AT,800967E0	;branch if 1xxx item
OR	V1,V0,R0
ADDIU	AT,R0,0002
BNE	A0,AT,80096834	;branch if ?xxx item
ANDI	T6,A2,0F00
SRA	T7,T6,0x8	;T7=second nibble of code
SLL	T8,T7,0x2	;T8=nibble to offset
LUI	T9,8010
ADDU	T9,T9,T8
ANDI	T0,A2,00FF	;TO=item# in bank
LW	T9,76BC (T9)	;T9=801076BC+offset: offset to bank within item table
SLL	T1,T0,0x2
ADDU	T1,T1,T0
SLL	T1,T1,0x1	;T1=item# * 10
LUI	T3,0600
ADDIU	T3,T3,0000	;T3=06000000: mask for 'offsets' in 801076BC
LUI	T5,010F
ADDU	T2,T9,T1	;T2= bank+#
SUBU	T4,T2,T3	;T4=literal offset
ADDIU	T5,T5,4000	;T5=010F4000: item codeword
ADDU	A1,T4,T5	;A1=codeword to text
JAL	80096710	;pull from rom
ADDIU	A0,SP,0028	;A0=target buffer for string
LW	A0,0040 (SP)	;A0=target (sent by caller)
ADDIU	A1,SP,0028	;A1=p->buffer
JAL	800998C0	;copy from A1 to A0
ADDIU	A2,R0,000A	;A2=strlen, always 10
BEQ	R0,R0,80096850
LW	RA,0014 (SP)
//800967E0:	1xxx entries
ANDI	T6,A2,0FFF	;T6=all but first nibble: item #
SLL	T7,T6,0x2
ADDU	T7,T7,T6
LUI	T8,0600
ADDIU	T8,T8,1D98	;T8=06001D98: base offset for 1xxx items
SLL	T7,T7,0x1	;T7=item# * 10
LUI	T9,0600
ADDIU	T9,T9,0000	;T9=06000000
ADDU	T0,T7,T8	;T0=base+#
LUI	T2,010F
ADDIU	T2,T2,4000	;T2=010F4000: item codeword
SUBU	T1,T0,T9	;T1=actual offset
ADDU	A1,T1,T2	;A1=codeword for item
JAL	80096710	;pull it from rom
ADDIU	A0,SP,0028
LW	A0,0040 (SP)	;A0=final target
ADDIU	A1,SP,0028	;A1=source
JAL	800998C0	;copy to final destination
ADDIU	A2,R0,000A	;A2=strlen, which is always 10 with these
BEQ	R0,R0,80096850
LW	RA,0014 (SP)
//80096834:	?xxx items
BNEZ	V1,8009684C
LW	A0,0040 (SP)	;A0=target
LUI	A1,8010
ADDIU	A1,A1,76B0	;A1=801076B0: blank entry (10 spaces)
JAL	800998C0
ADDIU	A2,R0,000A	;A2=strlen always 10
LW	RA,0014 (SP)
//80096850:
ADDIU	SP,SP,0040
JR	RA
NOP	


80096710	redirect to ROM pull
	accepts: A0=p->buffer, A1=codeword, A2=strlen
ADDIU	SP,SP,FFE0
SW	RA,001C (SP)
LUI	A3,8011
ADDIU	T6,R0,0055
SW	T6,0010 (SP)
ADDIU	A3,A3,70B0	;A3="../m_item_name.c"
JAL	80026E10
ADDIU	A2,R0,000A
LW	RA,001C (SP)
ADDIU	SP,SP,0020
JR	RA
NOP
